package com.nexgo.payment.action.readcard;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.entity.CardInfo;

/**
 * Created by xiaox on 2017/7/6.
 */

public interface ReadCardContract {
    interface View extends BaseView<Presenter> {

        /**
         * 显示交易金额
         *
         * @param amount 金额
         */
        void showAmount(String amount);

        /**
         * 提示倒计时
         *
         * @param countTime
         */
        void showCountTime(int countTime);

        /**
         * 读卡提示
         *
         * @param manual 手输
         * @param swipe 刷卡
         * @param insert 插卡
         * @param tap 挥卡
         */
        void showReadCard(boolean manual, boolean swipe, boolean insert, boolean tap);

        /**
         * 刷卡错误
         */
        void showSwipeError();

        /**
         * 提示使用单一片卡
         */
        void showMultipleCards();

        /**
         * 提示使用IC卡
         */
        void showUseICC();

        /**
         * 提示使用磁条卡
         */
        void showUseMag();

        /**
         * 提示优先挥卡
         */
        void showPriorityUseRf();

        /**
         * 提示读卡错误
         */
        void showReadCardError();

        /**
         * 提示输入卡号有误
         */
        void showInputCardNoError();

        /**
         * 提示输入卡片有效期为空
         */
        void showEmptyExpDate();

        /**
         * 提示输入有效期格式有误
         */
        void showExpDateFormatError();

        /**
         * 交易金额大于DF20时，非接提示：请尝试其他通讯界面
         */
        void showTryOtherCommunication();

        /**
         * 提示读卡超时
         */
        void showReadCardTimeout();

        /**
         * 提示读卡成功
         *
         * @param cardInfo 卡信息
         */
        void showSuccessful(CardInfo cardInfo);

        /**
         * 界面状态
         *
         * @return
         */
        boolean isActive();
    }

    interface Presenter extends BasePresenter {

        /**
         * 手输卡号
         *
         * @param pan 卡号
         */
        void importManualPan(String pan, String expDate);

        /**
         * 停止读卡
         */
        void stopReadCard();
    }
}
